<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>正则 </title>
</head>
<body>

<!--
  // 前瞻：
  exp1(?=exp2) 查找exp2前面的exp1

  // 后顾：
  (?<=exp2)exp1 查找exp2后面的exp1

  // 负前瞻：
  exp1(?!exp2) 查找后面不是exp2的exp1

  // 负后顾：
  (?<!exp2)exp1 查找前面不是exp2的exp1


  ()表示捕获分组，()会把每个分组里的匹配的值保存起来，使用$n(n是一个数字，表示第n个捕获组的内容)
  (?:)表示非捕获分组，和捕获分组唯一的区别在于，非捕获分组匹配的值不会保存起来


  // 排除
  /^(?!baidu).*$/.test('baidu.com');


  // 例子
  https://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html

 -->

<script>
"中国人".replace(/(?<=中国)人/, "rr") // 匹配中国人中的人，将其替换为rr，结果为 中国rr
"法国人".replace(/(?<=中国)人/, "rr") // 结果为 法国人，因为人前面不是中国，所以无法匹配到

// 匹配
"1234567890".replace(/\B(?=(?:\d{3})+(?!\d))/g,",") // 结果：1,234,567,890，匹配的是后面是3*n个数字的非单词边界(\B)

</script>

</body>
</html>
